AOP瞎想
Introduction
AOP的中文译文五花八门(面向切面,面向方面等,总觉的两个“面”在一个词语里出现,怪怪滴),英文全称:Aspect-Oriented Programming。随便你怎么翻译,它就是一个概念。
探索
想要了解这个深奥的概念,我觉得一开始就要接触权威的定义。去wikipedia上先看看中文解释。
总之,感觉它就是一个面。这里有篇文章,很好的展示了这个aspect是什么东西.其中有张图,可以很好的解释其中的关键定义。
如果觉得不爽的话,可以去看看英文版的wikiAspect-oriented_programming
如果觉得不爽,可以找一个例子,自己试试。这里还有一个例子,是用AOP进行和注解进行log管理的文章
之后我们再来回头看看最容易接触到的百度百科,虽然有一定答疑解惑的功效,但是和上面的资料相比,我想还是有差距的。
总结
AOP只是一种软件设计思想(2015-6-7 11:53:59回头去看,如果是和OOP对应的话,叫泛型可能更合适,为了方便认识,暂且认为他是一种思想吧!),是相对于目前占据主宰地位的OOP的延续和发展。OOP为为一种东西提供了良好并且独立的封装,同时,让每一个封装拥有特殊的方法。OOP使软件能够以模块进行组织开发和维护,这样,软件就可以多个功能点共同推进开发。整个软件开发就可以顺利的纵向并行进行。但是,有时需要对这些模块的某些方面(某些状态或行为)进行统一的横向操作。{但是,在很多情况下,各类之间的某些功能可能会重叠,当需要修改某写类的共有功能时,可能会涉及到很多其他的类。}如果有一个公用的方法可以把这种单独的共有功能提取出来,让软件的层次更加分明,降低各个部分的耦合度,这样会更有利于软件的维护和持续开发。AOP就是基于软件的某一方面而提出的软件设计思想——面向aspect编程。